﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Datos.Entidades;
using Datos.Fabricas;
using System.Xml.Linq;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;
using Logica.Comandos.AdministracionUsuarios;

namespace Pruebas
{
    [TestFixture]
    public class PruebaXML
    {
       

        [TestCase]
        public void leer()
        {

            bool respuesta = false;
            string ruta = "C:/PruebaXML";
            XElement xmlContactos = XElement.Load(ruta + "/actualizacionEventos.xml");


            //Obtener el Nombre y clave de todos los usuarios
            var UsuariosTodos =
            from c in xmlContactos.Descendants("usuario")
            select new
            {
                nombre = c.Element("nombreUsuario").Value,
                clave = c.Element("claveCifrada").Value
            };
            foreach (var item in UsuariosTodos)
            {
                Entidad usuario = FabricaEntidades.ObtenerUsuario();

                (usuario as Usuario).Login = "jenny";
                (usuario as Usuario).ClaveCifrada = "81dc9bdb52d04dc20036dbd8313ed055";

                Comando comandoUsuariovalidar = FabricaComandoUsuario.ObtenerComandoUsuarioLogin();
                comandoUsuariovalidar.Entidad = usuario;
                comandoUsuariovalidar.Ejecutar();
                string existe = (comandoUsuariovalidar.Entidad as Usuario).Login;

                if (existe != (usuario as Usuario).Login)
                {
                    Comando comandoUsuario = FabricaComandoUsuario.ObtenerComandoInsertarUsuario();
                    comandoUsuario.Entidad = usuario;
                    (comandoUsuario as InsertarUsuario).Ejecutar();
                    comandoUsuario.Ejecutar();

                    respuesta = comandoUsuario.Flag;

                    Assert.AreEqual(respuesta , false);
                }
              

         
            }

            Assert.AreEqual(respuesta, false);

        }

        

    }
}
